Detecciones con cámara trampa y avístamientos incidentales
| Kavanayen | Warapata | |
|---|---|---|
| Nr. bloques | 4 | 6 |
| Nr. celdas con cámaras | 14 | 57 |
| Días*cámara | 703 | 4548 |
| Nr. celdas visitadas | 39 | 59 |
| Distancia recorrida (km) | 119.49 [km] | 218.14 [km] |
R version 4.3.0 (2023-04-21)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.5.1
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.11.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: Australia/Sydney
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RColorBrewer_1.1-3 tmap_3.3-3 chron_2.3-61
[4] raster_3.6-20 tidyr_1.3.0 units_0.8-2
[7] htmltools_0.5.5 DT_0.28 ggplot2_3.4.2
[10] sp_1.6-0 leaflet_2.1.2 dplyr_1.1.2
[13] flexdashboard_0.6.2
loaded via a namespace (and not attached):
[1] tidyselect_1.2.0 viridisLite_0.4.2 farver_2.1.1
[4] fastmap_1.1.1 XML_3.99-0.14 digest_0.6.31
[7] lifecycle_1.0.3 sf_1.0-12 ellipsis_0.3.2
[10] terra_1.7-29 magrittr_2.0.3 compiler_4.3.0
[13] rlang_1.1.1 sass_0.4.6 tools_4.3.0
[16] utf8_1.2.3 yaml_2.3.7 knitr_1.42
[19] labeling_0.4.2 htmlwidgets_1.6.2 classInt_0.4-9
[22] here_1.0.1 showtextdb_3.0 abind_1.4-5
[25] KernSmooth_2.23-20 withr_2.5.0 purrr_1.0.1
[28] leafsync_0.1.0 grid_4.3.0 fansi_1.0.4
[31] sysfonts_0.8.8 e1071_1.7-13 leafem_0.2.0
[34] colorspace_2.1-0 scales_1.2.1 dichromat_2.0-0.1
[37] cli_3.6.1 rmarkdown_2.21 ragg_1.2.5
[40] generics_0.1.3 rstudioapi_0.14 tmaptools_3.1-1
[43] DBI_1.1.3 cachem_1.0.8 proxy_0.4-27
[46] stars_0.6-1 parallel_4.3.0 s2_1.1.4
[49] base64enc_0.1-3 vctrs_0.6.2 jsonlite_1.8.5
[52] systemfonts_1.0.4 crosstalk_1.2.0 fontawesome_0.5.1
[55] jquerylib_0.1.4 thematic_0.1.3 rgdal_1.6-6
[58] glue_1.6.2 lwgeom_0.2-11 codetools_0.2-19
[61] leaflet.providers_1.9.0 gtable_0.3.3 munsell_0.5.0
[64] tibble_3.2.1 pillar_1.9.0 rappdirs_0.3.3
[67] showtext_0.9-6 R6_2.5.1 wk_0.7.3
[70] textshaping_0.3.6 rprojroot_2.0.3 evaluate_0.21
[73] lattice_0.21-8 highr_0.10 png_0.1-8
[76] memoise_2.0.1 bslib_0.4.2 class_7.3-21
[79] Rcpp_1.0.10 xfun_0.39 fs_1.6.2
[82] pkgconfig_2.0.3
---
title: "Monitoreo de Mamíferos y otros vertebrados en la Gran Sabana"
output:
flexdashboard::flex_dashboard:
theme:
version: 4
bg: "#F1FBFB"
fg: "#5B1A18"
primary: "#D67236"
navbar-bg: "#FD6467"
base_font:
google: Prompt
heading_font:
google: Sen
code_font:
google:
# arguments to sass::font_google()
family: JetBrains Mono
local: false
social: menu
source: embed
navbar:
- { title: "Proyecto en OSF", href: "https://osf.io/6qtep/", align: left }
- { title: "Repositorio GitHub", href: "https://github.com/jrfep/GS-svocc", align: left }
editor_options:
chunk_output_type: console
---
```{r setup, include=FALSE}
library(flexdashboard)
library(dplyr)
library(leaflet)
library(sp)
library(ggplot2)
library(DT)
library(htmltools)
library(units)
#library(plotly)
#library(spocc)
#library(rinat)
#library(mapr)
require(tidyr)
require(raster)
require(chron)
#library(sf)
library(tmap)
#library(lubridate)
#library(calendR)
library(RColorBrewer)
palette(brewer.pal(8, "Set2"))
```
```{r thematic, include = FALSE}
thematic::thematic_rmd(font = "auto")
```
```{r dataread, message=FALSE, warning=FALSE, include=FALSE}
here::i_am("doc/dashboard.Rmd")
GIS.data <- here::here("Rdata","GIS.rda")
if (!file.exists(GIS.data))
download.file(url="https://figshare.com/ndownloader/files/37547995",destfile=GIS.data)
load(GIS.data)
event.data <- here::here("Rdata","all-events.csv")
if (!file.exists(event.data))
download.file(url="https://figshare.com/ndownloader/files/42055824",destfile=event.data)
eventos_actualizados <- read.csv2(event.data)
coordinates(eventos_actualizados) <- c("long","lat")
crs(eventos_actualizados) <- grd@proj4string
qry <- over(eventos_actualizados,grd)
eventos_actualizados$grid <- qry$OID_
## differences between both event data frames:
eventos_adicionales <- eventos %>% filter(!species %in% eventos_actualizados$species) %>%
mutate(fotos=as.character(fotos))
eventos <- eventos_actualizados@data %>%
bind_rows(eventos_adicionales)
cam <- camaras %>%
group_by(grid) %>%
summarise(cam = sum(dias.de.trabajo),
caz = max(caza.celda)) %>%
transmute(grid, caz, cam)
tps_xy <- spTransform(tps, CRS("+proj=utm +zone=19 +datum=WGS84 +units=m +no_defs +type=crs"))
xys <- coordinates(tps_xy)
walk <- tps@data %>%
group_by(grid) %>%
summarise(walk = n(),
dates = n_distinct(time))
walk_ms <- data.frame()
for (k in unique(tps_xy@data$grid)) {
ss <- tps_xy@data$grid == k
mtz <- as.matrix(dist(xys[ss,]))
mtz[upper.tri(mtz,diag = TRUE)] <- NA
walk_ms <- rbind(walk_ms, data.frame(grid=k, dist_walk=sum(apply(mtz[-1,],1, min, na.rm=TRUE))))
}
walk <- walk %>% left_join(walk_ms, by = "grid") %>%
mutate(region = if_else(grid <151, "Warapata", "Kavanayen"))
gpslog <- spLines(subset(tps,tps@data$track_fid ==0),
subset(tps,tps@data$track_fid ==1),
subset(tps,tps@data$track_fid ==2),
subset(tps,tps@data$track_fid ==3),
subset(tps,tps@data$track_fid ==5),
subset(tps,tps@data$track_fid ==6),
subset(tps,tps@data$track_fid ==7),
subset(tps,tps@data$track_fid ==10),
subset(tps,tps@data$track_fid ==11),
subset(tps,tps@data$track_fid ==12),
subset(tps,tps@data$track_fid ==13),
subset(tps,tps@data$track_fid ==14),
subset(tps,tps@data$track_fid ==15),
subset(tps,tps@data$track_fid ==16),
subset(tps,tps@data$track_fid ==17),
attr=data.frame(fid=0:14))
event_summary <- eventos %>%
group_by(grid) %>%
summarise(
total_spp=n_distinct(species))
on_camera_event_summary <- eventos %>%
filter(!camara %in% "RAS") %>%
group_by(grid) %>%
summarise(
on_camera_spp=n_distinct(species),
on_camera_events=n())
off_camera_event_summary <- eventos %>%
filter(camara %in% "RAS") %>%
group_by(grid) %>%
summarise(
off_camera_spp=n_distinct(species),
off_camera_events=n())
event_summary <- event_summary %>%
left_join(on_camera_event_summary, by = "grid") %>%
left_join(off_camera_event_summary, by = "grid")
effort_data <- walk %>%
full_join(cam, by = "grid") %>%
full_join(event_summary, by = "grid") %>%
filter(!is.na(grid) ) %>%
transmute(grid,
walk=coalesce(walk,0L),
dist_walk=coalesce(dist_walk,0L),
cam=coalesce(cam,0L),
total_spp=coalesce(total_spp,0L),
on_camera_spp=coalesce(on_camera_spp,0L),
off_camera_spp=coalesce(off_camera_spp,0L),
on_camera_events=coalesce(on_camera_events,0L),
off_camera_events=coalesce(off_camera_events,0L))
effort_data$bloque <- factor(grd@data$cuadrado[match(effort_data$grid,grd@data$OID_)])
grd@data <- grd@data %>%
left_join(event_summary, by=c("OID_"="grid")) %>%
transmute(Celda=OID_,
Bloque=cuadrado,
#`Distancia recorrida` = dist_walk,
#`Dias*cámara` = cam,
`Eventos fotográficos` = coalesce(on_camera_events,0L),
`Otros avistamientos` = coalesce(off_camera_events,0L),
`Especies fotografiadas` = coalesce(on_camera_spp,0L),
`Especies avistadas` = coalesce(off_camera_spp,0L),
`Total spp. detectadas` = coalesce(total_spp,0L),
)
```
Column1{.tabset .tabset-fade data-width=250}
-------
Detecciones con cámara trampa y avístamientos incidentales
### Esfuerzo de muestreo {data-width=245}
```{r esfuerzo}
cuadro_2 <- effort_data %>%
mutate(Region = if_else(bloque %in% 1:6,"Warapata","Kavanayen")) %>%
group_by(Region) %>%
summarise(
`Nr. bloques` = n_distinct(bloque),
`Nr. celdas con cámaras` = sum(if_else(cam>0,1,0)),
`Días*cámara`=sum(cam),
`Nr. celdas visitadas` = sum(if_else(dist_walk>0,1,0)),
`Distancia recorrida (km)` = sum(set_units(dist_walk,'m')) %>% set_units('km') %>% round(2),
.groups = "keep") %>% t()
colnames(cuadro_2) <- cuadro_2[1,]
cuadro_2[-1,] %>% knitr::kable()
```
### Observaciones por especie {data-width=245}
```{r taxalist}
###Create HTML formatting code for header and overall table HTML container
#create header style HTML code
# use colors from the flatly theme?
header.style <- "th { font-family: 'Arial'; font-weight: bold; color: white; background-color: #18bc9c;}"
cell.style <- "text-align: center; border-right-width: 1px; border-right-style: solid; border-right-color: white;
border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: white"
hcell.style <- "text-align: center; border-width: 1px; border-style: solid; border-color: white; font-size:8px; ba
ckground-color: #18bc9c;"
#pull header names from the table
header.names <- c("Assessment Unit", "Period", "min(RS[i])", "mean RS", "max(RS[i])", "mean RS")
# The container parameter allows us to design the header of the table using CSS
my.container <- withTags(table(
style(type = "text/css", header.style),
thead(
tr(th("",colspan=2),
th("Original formula",colspan=3, style = hcell.style),
th("Conditional formula", style = hcell.style)),
tr(
lapply(header.names, th, style = cell.style)
)
)
)
)
cuadro_1 <- eventos %>% group_by(Especie = species) %>% summarise(`Eventos fotográficos` = sum(!camara %in% "RAS"),`Otros avistamientos`=sum(camara %in% "RAS"))
DT::datatable(
cuadro_1,
#colnames = ,
#caption = tbl_caption,
options = list(
dom = 't',
pageLength = -1,
order = list(list(1, 'desc'),list(2, 'desc'))),
#container=my.container,
rownames = FALSE,
width = '100%',
height = '100%') #%>%
# formatRound(c("min_RS", "mean_RS", "max_RS", "mean_RS_cor"),digits=3)
```
Column2 {.tabset .tabset-fade}
-------
### Mapa
```{r map, eval = TRUE}
tmap_mode("view")
map1 <-
tm_shape(gpslog, name = "Recorrido (GPS)") +
tm_lines(col = "maroon") +
tm_shape(subset(grd,Bloque %in% 1:6), name = "Warapata: Unidades de muestreo") +
tm_polygons( border.col = "#F1BB7B", alpha=.5) +
tm_shape(subset(grd,Bloque %in% 7:10), name = "Kavanayen: Unidades de muestreo") +
tm_polygons( border.col = "#FD6467", alpha=.5) +
tm_minimap()
tmap_leaflet(map1)
```
### Caminata {data-width=245}
```{r "walking distance", fig.showtext = TRUE}
ggplot(data=walk, aes(x = walk, y = dist_walk, colour = region)) +
geom_point() +
scale_colour_manual(values=c("Kavanayen"="#FD6467","Warapata"="#F1BB7B")) +
labs(x="GPS log points", y = "Distancia (metros)", title = "Distancia recorrida en cada unidad de muestreo (celda)")
```
### Rastros y otros avistamientos {data-width=245}
```{r xtraKavanayen}
filter(eventos, camara %in% "RAS") %>%
transmute(Especie=species, `Tipo de evidencia`=evento, Bloque=bloque, Celda=grid, Año=ano, Mes=mes,Día=dia) %>%
DT::datatable(options = list(
pageLength = 25,
order = list(list(4, 'asc'),list(5, 'asc'),list(6, 'asc'))),
rownames = FALSE)
```
### Esfuerzo de muestreo (expandido)
```{r obsbyyear}
effort_data %>%
group_by(bloque) %>%
summarise(`nr. de celdas`=n_distinct(grid),
`Puntos del log del GPS` = sum(walk),
`Distancia recorrida (km)` = sum(set_units(dist_walk,'m')) %>% set_units('km'),
`Días cámara` = sum(cam),
`Eventos fotográficos` = sum(on_camera_events),
`Otros avistamientos` = sum(off_camera_events)) %>%
DT::datatable(options = list(
pageLength = 25),
rownames = FALSE) %>%
formatRound(c("Distancia recorrida (km)"),digits=2)
```
### Información sobre la sesión de R
```{r sessionInfo}
sessionInfo()
```
Column3{data-width=150}
-------
### Warapata
### Eventos fotográficos
```{r}
on_camera <- effort_data %>% filter(bloque %in% 1:6) %>% summarise(sum(on_camera_events)) %>% pull
off_camera <- effort_data %>% filter(bloque %in% 1:6) %>% summarise(sum(off_camera_events)) %>% pull
n_especies <- eventos %>% filter(bloque %in% sprintf("B%02d",1:6)) %>% summarise(n_distinct(species)) %>% pull
valueBox(on_camera, icon = "fa-camera", color = "#F1BB7B")
```
### Otros avistamientos
```{r}
valueBox(off_camera, icon = "fa-binoculars", color = "#F1BB7B")
```
### Especies
```{r}
valueBox(n_especies, icon = "fa-paw", color = "#F1BB7B")
```
### Kavanayen
### Eventos fotográficos
```{r}
on_camera <- effort_data %>% filter(bloque %in% 7:10) %>% summarise(sum(on_camera_events)) %>% pull
off_camera <- effort_data %>% filter(bloque %in% 7:10) %>% summarise(sum(off_camera_events)) %>% pull
n_especies <- eventos %>% filter(bloque %in% sprintf("B%02d",7:10)) %>% summarise(n_distinct(species)) %>% pull
valueBox(on_camera, icon = "fa-camera", color = "#FD6467")
```
### Otros avistamientos
```{r}
valueBox(off_camera, icon = "fa-binoculars", color = "#FD6467")
```
### Especies
```{r}
valueBox(n_especies, icon = "fa-paw", color = "#FD6467")
```